﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Win32;

namespace Framework
{
    public class NetFrameworkUtility
    {
        public static string FrameworkInstallDir = System.Runtime.InteropServices.RuntimeEnvironment.GetRuntimeDirectory();
        public static string GetFrameworkDirectory()
        {
            // This is the location of the .Net Framework Registry Key   
            const string framworkRegPath = @"Software\Microsoft\.NetFramework";
            // Get a non-writable key from the registry   
            RegistryKey netFramework = Registry.LocalMachine.OpenSubKey(framworkRegPath, false);
            // Retrieve the install root path for the framework   
            if (netFramework != null)
            {
                string installRoot = netFramework.GetValue("InstallRoot").ToString();
                // Retrieve the version of the framework executing this program   
                string version = string.Format(@"v{0}.{1}.{2}\",
                                               Environment.Version.Major,
                                               Environment.Version.Minor,
                                               Environment.Version.Build);
                // Return the path of the framework   
                string path = System.IO.Path.Combine(installRoot, version);
                if (path.EndsWith("\\"))
                {
                    return path;
                }
                else
                {
                    return path + "\\";
                }
            }
            return null;
        }
    }
}
